#include <stdio.h>
//函数功能：交换x和y的值
//函数名：swap_conpy
//形参：
//x：形参1
//y：形参2
//成功返回：0
//失败返回：-1
//复制传递参数：形参不能改变实参的值
int swap_conpy(int x,int y)
{
    int t;
    t=x;
    x=y;
    y=t;
}
//函数功能：交换x和y的值
//函数名：swap_addr
//形参：
//x：形参1 , 传递变量的地址
//y：形参2 , 传递变量的地址
//成功返回：0
//失败返回：-1
//地址传递参数：形参可以改变实参的值
int swap_addr(int *x,int *y)
{
    int t;
    t=*x;
    *x=*y;
    *y=t;
}


int m=10,n=5;       //m和n是全局变量，在程序中任何地方都可见
//函数功能：交换x和y的值
//函数名：swap_aj
//形参：

//成功返回：0
//失败返回：-1
//全局传递参数：形参可以改变实参的值
int swap_qj(void)
{
    int t;
    t=m;
    m=n;
    n=t;
}

int main(int argc, char const *argv[])
{
    int a=10,b=5;

    //函数名（实参1，实参2）
    swap_conpy(a,b);    //把x=a，y=b；
    //运行结果：a=10，b=5
    //分析：x = a , y = b
    //之后交换x和y的值，a和b的值并没有改变
    //复制传递参数：形参不能改变实参的值（a,b是实参，x,y是形参）
    printf("复制传参 a=%d ,b=%d\n",a,b);

    swap_addr(&a,&b);
    printf("地址传参 a=%d ,b=%d\n",a,b);

    swap_qj();
    printf("全局传参 m=%d ,n=%d\n",m,n);

    return 0;
}
